Bir dizi istatistik adım var elma X muz Y kivi z Alfabe denen bir dizide Meyveler ve X, Y ve Z dizisine elma, muz ve Kivi koymam gerekiyor. Bunun için herhangi bir basit C # mekanizması lütfen?
Dizini sağlayan IEnumerable.Where aşırı yüklemesini kullanın. var meyveler = istatistikadı.Where ((s, i) => i% 2 == 0) .ToArray (); var alphabets = statsname.Where ((s, i) => i% 2! = 0) .ToArray (); | C # 'da Numaralandırılabilir Kullanarak Alternatif Öğeler Nasıl Elde Edilir'den çalındı var meyveler = myArray.Where ((t, i) => i% 2 == 0) .ToArray (); var alphabets = myArray.Where ((t, i) => i% 2 == 1) .ToArray (); | Sizi doğru anladıysam, ne istediğinizi sormak çok basit: Meyveleri bir dizi meyveye ve alfabeler için aynı şekilde koymak istiyorsunuz ve bunlar alternatif olarak dizi istatistik adında görünmektedir, bu nedenle: for (int i = 0, j = 0; i list = new List () {"elma", "X", "muz", "Y", "Kivi", "z"}; var sonuç = liste.Seçin ((l, i) => yeni {l, i}) .GroupBy (p => p.i% 2) (X => x seçin. (V => v.l) .ToList ()) .Listeye(); Sonra bir liste listeniz var: | list meyveler = new List (); list alfabe = new List (); for (int i = 0; i everyOther (IEnumerable koleksiyonu) { kullanarak (var e = collection.GetEnumerator ()) { while (e.MoveNext ()) { getiri getiri e. Akım; e.MoveNext (); // birini atla } } } İlk öğeyi atlamak için System.Linq.Skip'i kullanabilirsiniz. string [] kelimeler = "elma X muz Y Kivi z" .Split (); var meyveler = everyOther (kelimeler); var alphabets = everyOther (word.Skip (1)); Bunları yeni bir koleksiyon olarak kullanın veya bunlarda .ToArray () veya .ToList () 'i çağırın: foreach (meyvelerde f dizisi) Console.WriteLine (f); string [] anArray = meyveler.ToArray (); // System.Linq kullanarak Artık ihtiyacınız olan şey var. Yineleyiciler, getiri sağlayan yöntemlerdir, bkz. Yineleyiciler (C # Programlama Kılavuzu). Bu, dilin çok güçlü bir özelliğidir. Yapabilirsin: öğeleri atla öğeleri süsle sıralamayı değiştir sıraları birleştir (bkz. System.Linq.Concat) ... | İşte bazı çalışma kodları, umarım bu size yardımcı olur: Sistem kullanarak; System.Collections.Generic kullanarak; System.IO kullanarak; System.Linq kullanarak; System.Text kullanarak; System.Threading.Tasks kullanarak; ad alanı ReadFile { sınıf programı { statik void ReadFile (string filePath, List custumerNames, List phoneNumbers) { string line = string.Empty; var fileStream = new StreamReader (filePath); bool isPhoneNumber = true; while ((line = fileStream.ReadLine ())! = null) { eğer (isPhoneNumber) { phoneNumbers.Add (Convert.ToInt32 (line)); isPhoneNumber = false; } Başka { custumerNames.Add (satır); isPhoneNumber = true; } } fileStream.Close (); } statik geçersiz Ana (dize [] değiştirgeler) { Console.WriteLine ("Dosyayı okumaya başladım ..."); List custumersNamesList = new List (); List custumersPhonesNumbers = new List (); ReadFile ("SampleFile.txt", custumersNamesList, custumersPhonesNumbers); // Her iki listenin de aynı uzunlukta olduğunu varsayarsak. for (int i = 0; i